package handler

import (
	"net/http"
	"torchsr/internal/logic"
	"torchsr/internal/svc"
	"torchsr/utils/xhttp"
)

func UploadFileHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
	return func(w http.ResponseWriter, r *http.Request) {

		l := logic.NewUploadFileLogic(r.Context(), svcCtx)
		resp, err := l.UploadFile(r)
		if err != nil {
			xhttp.ParamErrorResult(r, w, err)
		} else {
			xhttp.HttpResult(r, w, resp, err)
		}
	}
}

//
//func UploadFileHandler1(svcCtx *svc.ServiceContext) http.HandlerFunc {
//	return func(w http.ResponseWriter, r *http.Request) {
//		file, header, err := r.FormFile("file")
//		if err != nil {
//			httpx.Error(w, err)
//			return
//		}
//		defer file.Close()
//
//		fmt.Println(header.Filename)
//
//		fmt.Println(file)
//		fmt.Println("上传文件成功")
//		// header.Filename 是上传的文件名
//		// file 是文件的内容，你可以将其保存到你需要的地方
//
//		//保存到本地
//		out, err := os.Create(header.Filename)
//		if err != nil {
//			httpx.Error(w, err)
//			return
//		}
//		defer out.Close()
//
//		// 将上传的文件内容写入到新文件中
//		_, err = io.Copy(out, file)
//		if err != nil {
//			httpx.Error(w, err)
//			return
//		}
//
//		fmt.Println("上传文件成功")
//
//		//var req types.UploadFileReq
//		//if err := httpx.Parse(r, &req); err != nil {
//		//	httpx.ErrorCtx(r.Context(), w, err)
//		//	return
//		//}
//
//		l := logic.NewUploadFileLogic(r.Context(), svcCtx)
//		resp, err := l.UploadFile(file)
//		if err != nil {
//			httpx.ErrorCtx(r.Context(), w, err)
//		} else {
//			httpx.OkJsonCtx(r.Context(), w, resp)
//		}
//
//		// 假设我们将文件内容保存后，返回一个文件ID为"12345"
//		httpx.OkJson(w, map[string]string{
//			"fileId": header.Filename,
//		})
//	}
//}
